class Cache{
  /**
   * 构造函数
   * @param {*} expire 
   */
  constructor(expire=86400){
    this.expire = (new Date()).getTime() + expire * 1000
  }

  /**
   * 设置缓存
   * @param {*} key 
   * @param {*} data 
   * @returns Boolean
   */
  setCache(key,data) {
    wx.setStorageSync(key, {data:data,expire:this.expire})
    return true   
  }
  /**
   * 获取缓存
   * @param {*} key 
   */
  getCache(key){
      let data = wx.getStorageSync(key)
      let res = null
      if(data) {
          // 如果有缓存 判断缓存是否超过有效期
          let current_time = (new Date()).getTime()
          if(data.expire > current_time) {
            res =  data.data
          } else {
            wx.removeStorageSync(key)
          }
      } 

      return res
  }


  /**
   * 判断缓存中是否有个某个值
   * @param {*} key 
   * @returns Boolean
   */
  hasCache(key){
    let data = wx.getStorageSync(key)
    let res = false
    if(data) {
        // 如果有缓存 判断缓存是否超过有效期
        let current_time = (new Date()).getTime()
        if(data.expire > current_time) {
          res =  true
        } else {
          wx.removeStorageSync(key)
        }
    } 

    return res
  }
  /**
   * 移除缓存
   * @param {*} key 
   * @returns Boolean
   */
  removeCache(key) {
    wx.removeStorageSync(key)
    return true
  }
}

export {Cache}